package numSpecial;

public class Solution {
    public int numSpecial(int[][] mat) {
//        int count = 0;
//        for (int i = 0; i < mat.length; i++) {
//            for (int j = 0; j < mat[0].length; j++) {
//                if(mat[i][j]==1&&check(mat,i,j)){
//                    count++;
//                }
//            }
//        }
//        return count;

        // 解法二
        // 统计第每行有多少个1 每列有多少个1
        int m = mat.length;
        int n = mat[0].length;
        int[] row = new int[m];
        int[] col = new int[n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                row[i]+=mat[i][j];
                col[j]+=mat[i][j];
            }
        }
        int ans = 0;
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if(mat[i][j] == 1){
                    if(row[i]==1&&col[j]==1){
                        ans++;
                    }
                }
            }
        }
        return ans;
    }
//    private boolean check(int[][]mat,int a,int b){
//        for (int i = 0; i < mat.length; i++) {
//            if(mat[i][b]!=0&&i!=a){
//                return false;
//            }
//        }
//        for (int i = 0; i < mat[0].length; i++) {
//            if(mat[a][i]!=0&&i!=b){
//                return false;
//            }
//        }
//        return true;
//    }
}

